<html>
    <head>
        <title>功能第一程序  FeatureDefinitionProvider</title>
    </head>
    <body>
        <script>
            /*
                 1、功能定义程序  FeatureDefinitionProvider基类
                                        
                                            创建一个继承自 FeatureDefinitionProvider 的类来定义功能。

                                            eg：  定义功能

                                                using Volo.Abp.Features;

                                                namespace FeaturesDemo
                                                {
                                                    public class MyFeatureDefinitionProvider : FeatureDefinitionProvider // 继承自 FeatureDefinitionProvider基类
                                                    {
                                                        // 重写功能定义方法
                                                        public override void Define(IFeatureDefinitionContext context) // 功能定义上下文对象
                                                        {
                                                            var myGroup = context.AddGroup("MyApp"); // 添加一个功能组

                                                            myGroup.AddFeature(  // 向功能组中添加一个功能
                                                                "MyApp.PdfReporting", 
                                                                defaultValue: "false"
                                                            );
                                                            
                                                            myGroup.AddFeature(
                                                                "MyApp.MaxProductCount",
                                                                defaultValue: "10",
                                                                valueType: new FreeTextStringValueType(new NumericValueValidator())
                                                            );
                                                        }
                                                    }
                                                }


                                            ABP会自动发现此类并注册功能。无需额外配置。

                                            此类通常在解决方案的Application.Contracts（应用契约层）中创建。

                                            在Define方法中，你首先需要为你的应用程序/模块添加一个功能组或获取一个现有组，然后将功能添加到该组。

                                            第一个功能名为MyApp.PdfReporting，是一个boolean功能，false作为默认值。

                                            第二个功能名为MyApp.MaxProductCount，是一个以10为默认值的数字功能。

                                            如果没有为当前用户/租户设置其他值，则使用默认值。
            */
        </script>
    </body>
</html>